Delete Middle of Linked List

Given a singly linked list, delete middle of the linked list. For example, if given linked list is 1->2->3->4->5 then linked list should be modified to 1->2->4->5. If there are even nodes, then there would be two middle nodes, we need to delete the second middle element. For example, if given linked list is 1->2->3->4->5->6 then it should be modified to 1->2->3->5->6. If the input linked list is NULL or has 1 node, then it should return NULL Example 1: Input: LinkedList: 1->2->3->4->5 Output: 1 2 4 5: Example 2: Input: LinkedList: 2->4->6->7->5->1 Output: 2 4 6 5 1



        Code
        
  
Node* deleteMid(Node* head)
{
     Node* temp=head;
     int n=0;
    while(temp)
    {   n++;
        temp=temp->next;
    }
    int k=(n/2)+1;
    int i=1;
    temp=head;
	while(temp->next!=NULL)
	{    if(k==1)
	      {
	      	head=head->next;
	      	break;
		  }
		 if(i==k-1)
         {
          temp->next=temp->next->next;
             break;
		 }
		 else
		  temp=temp->next;		
		  i++;  
	}
  return head;
    
}